The present invention relates to the field of electronic circuits such as reprogrammable memories, and, more particularly, to a programmable logic array including at least one AND plane or at least one OR plane.
The design of logic circuitry may sometimes require the use of complex combinatorial circuitry that depends upon a clock signal. For example, this may be the case in a state machine that implements a sequential algorithm and has its combinatorial circuitry separated from its sequential storage circuitry. A basic scheme of a state machine may be seen in FIG. 1.
Current design approaches formulate the description of the state machine in a high level language (e.g., VHDL) to devise the algorithm. Once the methods are described in a language that may be synthesized (i.e., a high level language that can be interpreted by software to automatically synthesize the described logic network), the combinatorial circuitry can be implemented either with elementary logic gates or with a programmable logic array (PLA). These two solutions have their own advantages and disadvantages, the details of which are beyond the scope of the ensuing description.
What should be emphasized is that the implementation of logic gates is generally required and, as a result, the algorithm may not be modified in a simple manner. In fact, if a logic gate is to be implemented with complementary metal oxide semiconductor (CMOS) technology, the masks used for defining transistors will require modification, particularly the mask defining the active areas used during the first process step. On the other hand, by using a PLA the algorithm may be completely and simply changed by using a very limited number of masks and, therefore, process steps.
In other cases, such as that of FLASH erasable programmable read-only memories (EPROMs), reprogrammability is very important because the algorithm may sometimes require changes or updating during the life span of the device. This may occur during a debug phase or may follow from specific requirements which were not anticipated at the time of designing the device. Due to their relevance in the present context, the ensuing description will make reference to FLASH EPROM memories, although the invention may also be applied to other reprogrammable memories.
In order to clarify the technical problem overcome by the invention, reference is now made to FIG. 2. The nodes of the graph represent the states of the machine. Three bits individuate these states, whereas the branches labeled with the letters represent the state transitions.
A truth table of the machine of FIG. 2 is shown in FIG. 3. The states of the machine are coded by the variable STATE(0), STATE(1) and STATE(2) which represent the least significant bit, the intermediate bit and the most significant bit, respectively, of the group of three bits that individuate a certain current state. Variables FUTURE(0), FUTURE(1) and FUTURE(2) represent the least significant bit, the intermediate bit and the most significant bit, respectively, of the group of three bits that individuate a future state reached as a result of a certain transition. Variables OUT(n) and IN(n) represent the bits of the logic input and output logic signals of the machine corresponding to a certain transition. Dashes represent xe2x80x9cdon""t carexe2x80x9d symbols.
A hardware embodiment including a PLA implementing the truth table of FIG. 3 is shown in FIGS. 5 and 6. The PLA is built according to an AND-OR pre-charge and evaluation scheme. The combinatory circuitry COMBINATORIAL LOGIC that implements the PLA has 7 inputs, 9 minterms and 8 outputs.
As may be seen in FIG. 5, the AND plane of the PLA includes an array of transistors ordered in rows and columns. The transistors of a same column are connected in series through their respective current terminals, whereas the control terminals of the transistors belonging to the same row are connected in parallel. The top row of the array drives the start-up of the processing, whereas the bottom row extracts the computed values once the processing is completed.
The OR plane of the PLA, shown in FIG. 6, is instead formed by an array of transistors organized in row and columns which carry out the logic sum of the input minterms and by an output buffer. The transistors that belong to the same column of the array have their control terminals connected to a respective control line coupled to a certain minterm and a first current terminal connected to a reference potential. Also, the transistors of a same row have their second current terminal either connected or not to a respective output line. The output buffer (which appears on the left hand side of the figure) includes a column of inverters, each of which is connected to a respective output line and to a respective enabling transistor connected between the respective output line and the supply voltage VDD.
The PLA is a pre-charge and evaluation circuit. That is, the internal nodes are first pre-charged and then discharged during the evaluation phase if the input pattern corresponds to the expected one. To ensure that the outputs are read at the instant they assume a valid value (i.e., only when all the transistors function in a steady state), the PLA is provided with a dummy path DUMMY, as seen in FIGS. 5 and 6, that is designed to be the slowest of all paths. This dummy path DUMMY includes a set of as many transistors as the number of independent logic variables needed to implement the machine.
Because the dummy path has the largest number of transistors among the various paths of the PLA, it will consequently also be the slowest to reach a steady state of operation. Therefore, when a signal propagates through all the dummy path""s transistors, all of the other input signals will have propagated through their respective paths and the evaluation phase may thereby be completed.
A possible timing diagram of the signals represented in the table of FIG. 3 relative to the xe2x80x9cExe2x80x9d transition is shown in FIG. 4. The pre-charge phases of the AND (CPPA) and OR (CPPO) plane are active low and are out-phased among them. This is so that the output of the AND plane of the PLA may reach a steady state before the start of the processing carried out by the OR plane of the PLA. Before the CPPA signal enables the AND plane, the variables STATE(n) and IN(n) assume their respective values. Once the charge phase is completed with the disabling of the CPPO signal, the outputs OUT(n) and FUTURE(n) assume their respective final values. These are read only when the DUMMY path reaches a steady state and has delivered an OUTDUMMY output signal.
As shown in FIGS. 5 and 6, a combinatorial network having an xe2x80x9cixe2x80x9d number of input variables may be realized with a PLA with 2*I inputs, i.e., the xe2x80x9cixe2x80x9d input variables plus their respective inverted logic signal. This occurs because in order to ensure the programmability of the PLA the input variables and the respective inverted logic signals should be available. Let us consider a AND-OR PLA with 2*I inputs, xe2x80x9cpxe2x80x9d minterms and xe2x80x9coxe2x80x9d outputs, for example. To implement the AND plane on silicon there must be enough space for 2*i*p transistors for the content, 2*i transistors for the DUMMY PATH, 2*(p+1) transistors for the pre-charge of the minterms, and p inverters. In order to implement an OR plane there must be enough silicon area for o*p transistors for the content, o+p+1 transistors for the DUMMY PATH, o+1 transistors for the pre-charge of the minterms, and o+1 inverters.
Referring to FIG. 5, different space intervals between the transistors of a same column are shown for convenience, i.e., transistors are shown at some locations while at other locations only short-circuits are shown. In reality, the transistors of the PLA are uniformly distributed on the silicon surface. However, only those transistors that do not form a minterm are short-circuited and they are depicted in the figure as simple short-circuits, whereas the transistors corresponding to the variables present in a minterm have been depicted. These transistors may have minimum dimensions because they are designed for a specific requirement in a restricted area, and therefore have a small parasitic load.
The reprogramming process is implemented by modifying the connection of only one terminal of the transistors of the AND plane and of the OR plane. In the AND plane, the gates of the transistors are shown where they correspond to a true signal (xe2x80x9c1xe2x80x9d in the truth table) and an inverted signal (xe2x80x9c0xe2x80x9d in the truth table), but they are not shown where they correspond to xe2x80x9cdon""t caresxe2x80x9d (xe2x80x9cxe2x88x92xe2x80x9d in the truth table). In the OR plane, the transistors are shown omitting some of the contacts that connect them to the output line. The contacts are either shown if the output is conditioned by the minterm considered (xe2x80x9c1xe2x80x9d in the truth table) or not if the minterm does not connect to the output line (xe2x80x9c0xe2x80x9d in the truth table).
In summary, in the above type of PLA, a reprogramming of the entire algorithm may be implemented by establishing or not certain connections using poly gate and contact masks. Yet, current architectures have several drawbacks. As discussed above, the AND plane requires a silicon area of 2*i*p transistors for the logic content of the plane. However, it is evident that to implement any minterm there is no need for xe2x80x9cixe2x80x9d inputs because an input and its logic inverted value are never used simultaneously in the same minterm. A silicon area of i*p transistors should be theoretically sufficient to realize any minterm. Therefore, there exists a silicon area reserved to i*p transistors that always remains unused.
A second drawback relates to the fact that the drain nodes of the unused transistors of the OR plane remain floating. This is a condition that should be avoided in VLSI circuits. A third problems relates to the requirement for having two distinct masks to reprogram this type of PLA. That is, one mask for the AND plane and another one for the OR plane. It would certainly be more cost effective to use the same mask for both planes. Finally, the dummy path is solely to used for determining when to read the PLA outputs since the different paths are characterized by different signal propagation times.
It is an object of the present invention to provide an architecture for an AND plane and/or an OR plane of a logic programmable array (PLA) that reduces the above drawbacks of known PLAs and has signal propagation times along the various paths that are independent from the specific programming of the PLA, thus eliminating the need for a dummy path and reducing the area required for implementation.
This and other objects, features, and advantages according to the present invention are provided by a logic programmable array (PLA) including at least an AND plane including an array of transistors arranged in rows and columns. The transistors belonging to a same column are electrically connected in series. Opposite end conduction terminals of the series transistors are coupled to a supply voltage (VDD) and to a reference potential (GND), respectively. Further, the transistors of the first row and of the last row of the array have their control terminals connected to respective enabling potentials.
With the exception of the two extreme rows, each of the other rows of the array is associated with three different control lines. A first line is coupled to a first input value, a second line is coupled to a logic inverted value of the first input value, and a third line is coupled to a potential that maintains in a state of conduction the transistors connected to it. Each transistor of each non-extreme row has its control terminal connected to one of the three control lines. Optionally, the AND plane of the PLA of the invention may have a column (DUMMY) of transistors. With the exception of the transistors belonging to the two extreme rows, the control terminals of the column (DUMMY) are coupled to a voltage that maintains them in a conduction state.
According to another embodiment, the logic programmable array (PLA) of the invention may have at least an OR plane including an array of transistors arranged in rows and columns. The transistors belonging to a same column have their control terminals connected to a respective control line and a first current terminal coupled to a reference voltage (GND). Each transistor of each row of the array has a second current terminal connected or not to a respective output line, and those not connected to a respective output line are short-circuited to the respective first current terminal. The OR plane of the PLA of the invention may optionally have a column (DUMMY) of transistors whose control terminals are connected to a respective control line, while the current terminals are coupled to the reference potential (GND).